﻿package net.wangit;

import java.io.Serializable;

import net.wangit.framework.action.ActionMapping;


/**
 * 用户对象
 * 
 * @author watson Feb 24, 2010
 */
public interface User extends Serializable {
	// 判断用户是否拥有指定的用户组。
	public abstract boolean containsGroup(String s);

	// 判断用户是否拥有指定的角色。
	public abstract boolean containsRole(String s);

	// 取得指定的用户属性。
	public abstract String get(String s);

	// 获取用户的所有角色，包括直接角色和间接角色，不包括排斥角色，其中包含未激活的角色。
	public abstract String[] getAllRoles();

	// 获取用户的所有用户组，其中包含未激活的用户组。
	public abstract String[] getGroups();

	// 取得用户编号。
	public abstract String getId();

	// 取得用户名称。
	public abstract String getName();

	// 取得机构编号。
	public abstract String getOrgId();

	// 判断用户是否拥有指定Action的权限。
	public abstract boolean hasActionPrivilege(ActionMapping actionmapping);

	// 判断用户是否拥有指定数据权限的权限。
	public abstract boolean hasDataPrivilege(Object obj);

	// 判断用户是否拥有指定元素的权限。
	public abstract boolean hasElementPrivilege(Element element);

	// 判断用户是否拥有指定单元、指定显示模式的权限。
	public abstract boolean hasUnitPrivilege(String s, String s1, String s2);

	// 设置自定义用户属性，可通过用户表达式$U{}获取。
	public abstract void set(String s, String s1);
}
